// pages/billAdd/billAdd.js
const fetchSev = require('../../utils/util.js').fetchSev;
const addBillUrl = require('../../config.js').addBillUrl;
const delBillUrl = require('../../config.js').delBillUrl;

const app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    skipType: '',      // 新增？ 编辑？
    invoice_title: '', // 发票抬头
    duty_paragraph: '', // 税号
    status: 0,     // 默认发票
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 新增？ 编辑？
    const type = options.type;
    this.setData({skipType: type});
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log('页面刷新');
    if (this.data.skipType == 'add') {
      this.setData({ invoice_title: '' });
      this.setData({ duty_paragraph: '' });
      this.setData({ status: 0 });  
    } else {
      console.log('当前发票', app.globalData.curBill);
      this.setData({ invoice_title: app.globalData.curBill.invoice_title});
      this.setData({ duty_paragraph: app.globalData.curBill.duty_paragraph });
      this.setData({ status: parseInt(app.globalData.curBill.status) });  
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  },


  // 用户输入
  _inputChange: function(e) {
    const type = e.currentTarget.dataset.type;
    const value = e.detail.value;
    if (type == 'invoice_title') {
      this.setData({ invoice_title: value});
    } else {
      this.setData({ duty_paragraph: value});
    }
  },

  // 默认发票toggle
  _switch1Change: function(e) {
    console.log(e)
    const toggle = e.detail.value;
    toggle ? this.setData({status: 0}) : this.setData({status: 1});
  },


  // 提交
  _submit: function() {
    let data = null;
    if (this.data.skipType == 'add') {
      data = {
        invoice_title: this.data.invoice_title,
        duty_paragraph: this.data.duty_paragraph,
        status: this.data.status
      }
    } else {
      data = {
        invoice_title: this.data.invoice_title,
        duty_paragraph: this.data.duty_paragraph,
        status: this.data.status,
        id: app.globalData.curBill.id
      }
    }

    // 数据校验
    if (!data.invoice_title) {
      wx.showToast({
        title: '发票抬头不能为空',
        icon: 'none'
      });
      return;
    }
    if (!data.duty_paragraph) {
      wx.showToast({
        title: '税号不能为空',
        icon: 'none'
      });
      return;
    }
    // 税号正则
    const dutyReg = /^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/;
    if (!dutyReg.test(data.duty_paragraph)) {
      wx.showToast({
        title: '税号有误，请检查后重新输入',
        icon: 'none'
      });
      return;
    }
    // 提交
    fetchSev(addBillUrl, 'POST', data, (res)=>{
      wx.showToast({
        title: '操作成功',
      })
      wx.navigateBack({
        delta: 1
      });
    })
  },


  // 删除
  _delete: function() {
    const id = app.globalData.curBill.id;
    if (id) {
      fetchSev(delBillUrl, 'GET', {id: id}, (res)=>{
        wx.showToast({
          title: '删除成功',
          success: function() {
            wx.navigateBack({
              delta: 1
            })
          }
        })
      })
    }
  }
})